【アップデート】AWS CodeDeployのプッシュ通知サポート
渡辺です。
AWS CodeDeployは、アプリケーションのデプロイを自動化するサービスです。 複数のEC2インスタンスなどにアプリケーションをデプロイする時に便利なサービスですが、真骨頂はAutoScalingに対応していることでしょう。 2016年2月17日にデプロイイベントのプッシュ通知機能が追加されました。 プッシュ通知がサポートされたことで、より自動化された運用を行えるようになります。
デプロイイベントのプッシュ通知
デプロイは何らかの理由で失敗する可能性があります。 デベロッパーやオペレータが意図したタイミングでCodeDeployによるデプロイをする場合には問題がありません。 なぜならば、デプロイ結果はその時に確認するため、失敗したならば対応するからです。 しかし、問題はAutoScalingなどで意図しないタイミングでデプロイが発生した場合です。 マネジメントコンソールでデプロイの成否は確認できますが、いちいちログインして確認しなければいけないのです。
今回追加された、プッシュ通知(トリガー)を利用すれば、デプロイイベントが発生した時にSNSトピックへのプッシュ通知ができるようになります。 デプロイが失敗した時などにプッシュ通知(トリガー)を設定しておけば、早く問題に気付くことができます。
プッシュ通知の設定
プッシュ通知の設定は、デプロイメントグループ毎に行います。 あらかじめSNS Topicを作成しておいてください。
トリガーで「トリガーの作成」をクリックします。
トリガー名、イベント、Amazon SNSトピックをそれぞれ指定します。 ここでは、デプロイ失敗(Deployment fails)のみを対象としました。 複数のイベントを選択できるため、トラッキングシステムなどにデプロイイベントをすべて記録することも可能です。
通知を受けてみる
早速デプロイを失敗させて、プッシュ通知(SNS経由のメール通知)をしてみました。
FAILED: AWS CodeDeploy d-ZZZZZZZZZID in ap-northeast-1 to sample-app Hello, The status of the following AWS CodeDeploy deployment is: FAILED More info: https://console.aws.amazon.com/codedeploy/home?region=ap-northeast-1#/deployments/d-ZZZZZZZZZID Application name: sample-app Deployment ID: d-ZZZZZZZZZID Deployment group name: Production Region: ap-northeast-1 Start time: Thu Feb 25 08:16:44 UTC 2016 End time: Thu Feb 25 08:16:47 UTC 2016 Status: FAILED
こんなメールがプッシュ通知されてきています。
なお、LambdaやSQSにプッシュ通知した場合は、デプロイの詳細情報はJSONデータとして通知されます。
まとめ
CodeDeployのプッシュ通知は地味な機能ですが、AutoScalingで運用を自動化していくならば失敗通知は必須と考えて良いのではないでしょうか。 他にもデプロイイベントを監視システムやBacklogと連携させるなど、使い道は多いと思います。